import os
import importlib
import sys

def list_examples():
    """列出所有可用的代码示例"""
    examples = [
        {
            'name': '基础数据类型操作',
            'description': '演示Python中的基本数据类型（数字、字符串、列表等）的操作',
            'code': '''
# 数字操作
num1 = 10
num2 = 5
print(f"加法：{num1 + num2}")
print(f"减法：{num1 - num2}")
print(f"乘法：{num1 * num2}")
print(f"除法：{num1 / num2}")

# 字符串操作
str1 = "Hello"
str2 = "World"
print(f"字符串拼接：{str1 + ' ' + str2}")
print(f"字符串重复：{str1 * 3}")

# 列表操作
list1 = [1, 2, 3, 4, 5]
print(f"列表原始内容：{list1}")
list1.append(6)
print(f"添加元素后：{list1}")
list1.pop()
print(f"删除最后一个元素后：{list1}")
'''
        },
        {
            'name': '控制流程示例',
            'description': '展示Python中的条件语句和循环语句的使用',
            'code': '''
# if条件语句
num = 10
if num > 0:
    print("这是一个正数")
elif num < 0:
    print("这是一个负数")
else:
    print("这个数是零")

# for循环
print("\nfor循环示例：")
for i in range(5):
    print(f"当前数字是：{i}")

# while循环
print("\nwhile循环示例：")
count = 0
while count < 3:
    print(f"count = {count}")
    count += 1
'''
        },
        {
            'name': '函数使用示例',
            'description': '演示Python函数的定义和使用方法',
            'code': '''
def greet(name):
    """简单的问候函数"""
    return f"你好，{name}！"

def calculate_area(length, width):
    """计算矩形面积"""
    return length * width

# 测试函数
print(greet("张三"))
print(f"矩形面积：{calculate_area(5, 3)}")

# 带默认参数的函数
def power(x, n=2):
    """计算x的n次方，默认是平方"""
    return x ** n

print(f"2的平方：{power(2)}")
print(f"2的3次方：{power(2, 3)}")
'''
        }
    ]
    return examples

def run_example(example):
    """运行选定的代码示例"""
    print(f"\n=== {example['name']} ===")
    print(f"描述：{example['description']}")
    print("\n代码：")
    print(example['code'])
    print("\n运行结果：")
    try:
        exec(example['code'])
    except Exception as e:
        print(f"运行出错：{str(e)}")

def main():
    """主程序入口"""
    while True:
        print("\n=== Python代码示例集合 ===")
        examples = list_examples()
        
        print("\n可用的代码示例：")
        for i, example in enumerate(examples, 1):
            print(f"{i}. {example['name']}")
        print(f"{len(examples) + 1}. 退出")
        
        try:
            choice = int(input("\n请选择要运行的示例编号: "))
            if 1 <= choice <= len(examples):
                run_example(examples[choice - 1])
            elif choice == len(examples) + 1:
                print("\n感谢使用！再见！")
                break
            else:
                print("无效的选择，请重试")
        except ValueError:
            print("请输入有效的数字")

if __name__ == '__main__':
    main()